TreeviewCopyright © aleen42 all right reserved, powered by aleen42

在 Android 中我们用到了 LinearLayoutRelativeLayout 等布局,在 Flutter 好像并没有类似的东西,那在 Flutter 中控件是如何按照一定规则摆放的呢?

还记不记得之前说过的,Flutter 中一切皆控件,一切皆 Widget,之前讲过的 Text、Image 是 Widget,同样,布局也是 Widget。

在 Flutter 中,Widget 分为三类:

  • LeafRenderObjectWidget,对应一些基础控件,例如 Text、Image等等。
  • SingleChildRenderObjectWidget,对应一些包含一个子 Widget 的控件,它有一个 child 属性。
  • MultiChildRenderObjectWidget,对应一些 包含多个子 Wdiget 的控件,它有一个 childremn 属性。

SingleChildRenderObjectWidget

看官方文档中这样描述 SingleChildRenderObjectWidget

A superclass for RenderObjectWidgets that configure RenderObject subclasses that have a single child slot.

它的子类有单个插槽,也就是说,他有一个 child 属性,它的子类庞大:

其实常用的也就那么几个:

  • Container
  • Padding
  • Align
  • Center
  • ConstrainedBox

目前我就接触到这么几个,后续有遇到再更新吧。

MultiChildRenderObjectWidget

A superclass for RenderObjectWidgets that configure RenderObject subclasses that have a single list of children.

它的子类有都拥有一个 列表,它的家族倒是少一些,常用的也只是几个:

  • Flex
  • Flow
  • Stack
  • Wrap

下面我们来一一的学习他们,奥利给。

results matching ""

    No results matching ""